/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package DAO;

import Classes.Type;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.Map;

/**
 *
 * @author guig
 */
public class TypeDAO extends DAO<Type>{
    
    public TypeDAO(Connection conn) {
        super(conn);
    }
    
    /**
     * La fonction prend en paramètre un id de type et recherche dans la base les informations correspondante à l'id.
     * @param id
     * @return object<Type>
     */
    public Type findById(int id) {
        Type c = null;
            
            try {
			String query = "SELECT * FROM Type WHERE idT = '"+id+"'";
			ResultSet result = state.executeQuery(query);
                        while (result.next()) {
                            c = new Type(result.getInt("idT"), result.getString("nomT"));
                        }    
                        
		} 
		catch (SQLException e) {
			System.out.println("[Debug] Problème query : TypeDAO - findById()");
			e.printStackTrace();
                       
		}
            return c;
		
	
    }
    
    /**
     * La fonction recherche tous les types de la base de données et construit une Map d'objet Type
     * @return Map<Integer, Type>
     */
    public Map <Integer, Type> findAll() {
             Map<Integer,Type>listeType = new HashMap();
             ResultSet result2;
             try {
                String query = "SELECT * FROM type";
                result2 = state.executeQuery(query);
                while (result2.next()) {
                     listeType.put(result2.getInt("idT"), new Type(result2.getInt("idT"), result2.getString("nomT") ));   
                }  
                return listeType;
                       
                        
		} 
		catch (SQLException exc) {
			System.out.println("[Debug] Problème query : TypeDAO - findAll()");
			exc.printStackTrace();
                       
		}
		return null;
        }
}

